Output of Prior Pictures for Pictures Starting a New Coded Video Sequence In Video Coding

ABSTRACT

A method of decoding a coded video bitstream is provided. The method includes receiving the coded video bitstream, wherein the coded video bitstream contains a gradual decoding refresh (GDR) picture and a first flag having a first value; setting a second value of a second flag equal to the first value of the first flag; emptying any previously-decoded pictures from a decoded picture buffer (DPB) based on the second flag having the second value; and decoding a current picture after the DPB has been emptied. A corresponding method of encoding is also provided.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Application No.PCT/US2020/030951 filed on May 1, 2020 by Futurewei Technologies, Inc.,and titled “Output of Prior Pictures for Pictures Starting a New CodedVideo Sequence In Video Coding,” which claims the benefit of U.S.Provisional Patent Application No. 62/843,991 filed May 6, 2019, byYe-Kui Wang and titled “Output of Prior Pictures for Pictures Starting aNew Coded Video Sequence In Video Coding,” which is hereby incorporatedby reference.

TECHNICAL FIELD

In general, this disclosure describes techniques supporting the outputof previously-decoded pictures in video coding. More specifically, thisdisclosure allows previously-decoded pictures corresponding to a randomaccess point picture starting a coded video sequence (CVS) to be outputfrom a decoded picture buffer (DPB).

BACKGROUND

The amount of video data needed to depict even a relatively short videocan be substantial, which may result in difficulties when the data is tobe streamed or otherwise communicated across a communications networkwith limited bandwidth capacity. Thus, video data is generallycompressed before being communicated across modern daytelecommunications networks. The size of a video could also be an issuewhen the video is stored on a storage device because memory resourcesmay be limited. Video compression devices often use software and/orhardware at the source to code the video data prior to transmission orstorage, thereby decreasing the quantity of data needed to representdigital video images. The compressed data is then received at thedestination by a video decompression device that decodes the video data.With limited network resources and ever increasing demands of highervideo quality, improved compression and decompression techniques thatimprove compression ratio with little to no sacrifice in image qualityare desirable.

SUMMARY

A first aspect relates to a method of decoding implemented by a videodecoder. The method includes receiving, by the video decoder, the codedvideo bitstream, wherein the coded video bitstream contains a gradualdecoding refresh (GDR) picture and a first flag having a first value;setting, by the video decoder, a second value of a second flag equal tothe first value of the first flag; emptying, by the video decoder, anypreviously-decoded pictures from a decoded picture buffer (DPB) based onthe second flag having the second value after the GDR picture has beendecoded; and decoding, by the video decoder, a current picture after theDPB has been emptied.

The method provides techniques for the output of prior pictures (e.g.,previously-decoded pictures) in a decoded picture buffer (DPB) when arandom access point picture (e.g., a clean random access (CRA) picture,a gradual random access (GRA) picture, or gradual decoding refresh (GDR)picture, a CVSS picture, etc.) other than an instantaneous decoderrefresh (IDR) picture is encountered in decoding order. Emptying thepreviously-decoded pictures from the DPB when the random access pointpicture is reached prevents the DPB from overflowing and promotes a morecontinuous playback. Thus, the coder/decoder (a.k.a., “codec”) in videocoding is improved relative to current codecs. As a practical matter,the improved video coding process offers the user a better userexperience when videos are sent, received, and/or viewed.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the GDR picture is not a first picture of thecoded video bitstream, and wherein the first value of the flag is one.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the GDR picture is disposed in a video codinglayer (VCL) network abstraction layer (NAL) unit having a gradualdecoding refresh (GDR) network abstraction layer (NAL) unit type(GDR_NUT).

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the first flag is designated asno_output_of_prior_pics_flag and the second flag is designated asNoOutputOfPriorPicsFlag.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides setting a DPB fullness parameter to zero when thefirst flag is set to the first value.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the DPB is emptied after the GDR picture hasbeen decoded.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that displaying an image generated based on thecurrent picture.

A second aspect relates to a method of encoding implemented by a videoencoder. The method includes determining, by the video encoder, a randomaccess point for a video sequence; encoding, by the video encoder, agradual decoding refresh (GDR) picture into the video sequence at therandom access point; setting, by the video encoder, a flag to a firstvalue to instruct a video decoder to empty any previously-decodedpictures from a decoded picture buffer (DPB); generating, by the videoencoder, a video bitstream containing the video sequence having the GDRpicture at the random access point and the flag; and storing, by thevideo encoder, the video bitstream for transmission toward the videodecoder.

The method provides techniques for the output of prior pictures (e.g.,previously-decoded pictures) in a decoded picture buffer (DPB) when arandom access point picture (e.g., a clean random access (CRA) picture,a gradual random access (GRA) picture, or gradual decoding refresh (GDR)picture, a CVSS picture, etc.) other than an instantaneous decoderrefresh (IDR) picture is encountered in decoding order. Emptying thepreviously-decoded pictures from the DPB when the random access pointpicture is reached prevents the DPB from overflowing and promotes a morecontinuous playback. Thus, the coder/decoder (a.k.a., “codec”) in videocoding is improved relative to current codecs. As a practical matter,the improved video coding process offers the user a better userexperience when videos are sent, received, and/or viewed.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the GDR picture is not a first picture of thevideo bitstream, and wherein the video decoder is instructed to emptythe DPB after the GDR picture has been decoded

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the GDR picture is disposed in a video codinglayer (VCL) network abstraction layer (NAL) unit having a gradualdecoding refresh (GDR) network abstraction layer (NAL) unit type(GDR_NUT).

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides instructing the video decoder to set a DPB fullnessparameter to zero when the flag is set to the first value.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the flag is designated asno_output_of_prior_pics_flag.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the first value of the flag is one.

A third aspect relates to a decoding device. The decoding deviceincludes a receiver configured to receive a coded video bitstream; amemory coupled to the receiver, the memory storing instructions; and aprocessor coupled to the memory, the processor configured to execute theinstructions to cause the decoding device to: receive the coded videobitstream, wherein the coded video bitstream contains a gradual decodingrefresh (GDR) picture and a first flag having a first value; set asecond value of a second flag equal to the first value of the firstflag; empty any previously-decoded pictures from a decoded picturebuffer (DPB) based on the second flag having the second value; anddecode a current picture after the DPB has been emptied.

The decoding device provides techniques for the output of prior pictures(e.g., previously-decoded pictures) in a decoded picture buffer (DPB)when a random access point picture (e.g., a clean random access (CRA)picture, a gradual random access (GRA) picture, or gradual decodingrefresh (GDR) picture, a CVSS picture, etc.) other than an instantaneousdecoder refresh (IDR) picture is encountered in decoding order. Emptyingthe previously-decoded pictures from the DPB when the random accesspoint picture is reached prevents the DPB from overflowing and promotesa more continuous playback. Thus, the coder/decoder (a.k.a., “codec”) invideo coding is improved relative to current codecs. As a practicalmatter, the improved video coding process offers the user a better userexperience when videos are sent, received, and/or viewed.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the GDR picture is not a first picture of thecoded video bitstream.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the first flag is designated asno_output_of_prior_pics_flag, and wherein the second flag is designatedas NoOutputOfPriorPicsFlag.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides a display configured to display an image asgenerated based on the current picture.

A fourth aspect relates to an encoding device. The encoding deviceincludes a memory containing instructions; a processor coupled to thememory, the processor configured to implement the instructions to causethe encoding device to: determine a random access point for a videosequence; encode a gradual decoding refresh (GDR) picture into the videosequence at the random access point; set a flag to a first value toinstruct a video decoder to empty any previously-decoded pictures from adecoded picture buffer (DPB); and generate the video bitstreamcontaining the video sequence having the GDR picture at the randomaccess point and the flag; and a transmitter coupled to the processor,the transmitter configured to transmit the video bitstream toward avideo decoder.

The encoding device provides techniques for the output of prior pictures(e.g., previously-decoded pictures) in a decoded picture buffer (DPB)when a random access point picture (e.g., a clean random access (CRA)picture, a gradual random access (GRA) picture, or gradual decodingrefresh (GDR) picture, a CVSS picture, etc.) other than an instantaneousdecoder refresh (IDR) picture is encountered in decoding order. Emptyingthe previously-decoded pictures from the DPB when the random accesspoint picture is reached prevents the DPB from overflowing and promotesa more continuous playback. Thus, the coder/decoder (a.k.a., “codec”) invideo coding is improved relative to current codecs. As a practicalmatter, the improved video coding process offers the user a better userexperience when videos are sent, received, and/or viewed.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the GDR picture is not a first picture of thevideo bitstream.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the flag is designated asno_output_of_prior_pics_flag.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides that the memory stores the bitstream prior to thetransmitter transmitting the bitstream toward the video decoder.

A fifth aspect relates to a coding apparatus. The coding apparatusincludes a receiver configured to receive a picture to encode or toreceive a bitstream to decode; a transmitter coupled to the receiver,the transmitter configured to transmit the bitstream to a decoder or totransmit a decoded image to a display; a memory coupled to at least oneof the receiver or the transmitter, the memory configured to storeinstructions; and a processor coupled to the memory, the processorconfigured to execute the instructions stored in the memory to performany of the methods disclosed herein.

The coding apparatus provides techniques for the output of priorpictures (e.g., previously-decoded pictures) in a decoded picture buffer(DPB) when a random access point picture (e.g., a clean random access(CRA) picture, a gradual random access (GRA) picture, or gradualdecoding refresh (GDR) picture, a CVSS picture, etc.) other than aninstantaneous decoder refresh (IDR) picture is encountered in decodingorder. Emptying the previously-decoded pictures from the DPB when therandom access point picture is reached prevents the DPB from overflowingand promotes a more continuous playback. Thus, the coder/decoder(a.k.a., “codec”) in video coding is improved relative to currentcodecs. As a practical matter, the improved video coding process offersthe user a better user experience when videos are sent, received, and/orviewed.

Optionally, in any of the preceding aspects, another implementation ofthe aspect provides a display configured to display an image.

A sixth aspect relates to a system. The system includes an encoder; anda decoder in communication with the encoder, wherein the encoder or thedecoder includes the decoding device, the encoding device, or the codingapparatus disclosed herein.

The system provides techniques for the output of prior pictures (e.g.,previously-decoded pictures) in a decoded picture buffer (DPB) when arandom access point picture (e.g., a clean random access (CRA) picture,a gradual random access (GRA) picture, or gradual decoding refresh (GDR)picture, a CVSS picture, etc.) other than an instantaneous decoderrefresh (IDR) picture is encountered in decoding order. Emptying thepreviously-decoded pictures from the DPB when the random access pointpicture is reached prevents the DPB from overflowing and promotes a morecontinuous playback. Thus, the coder/decoder (a.k.a., “codec”) in videocoding is improved relative to current codecs. As a practical matter,the improved video coding process offers the user a better userexperience when videos are sent, received, and/or viewed.

A seventh aspect relates to a means for coding. The means for codingcomprises receiving means configured to receive a picture to encode orto receive a bitstream to decode; transmission means coupled to thereceiving means, the transmission means configured to transmit thebitstream to a decoding means or to transmit a decoded image to adisplay means; storage means coupled to at least one of the receivingmeans or the transmission means, the storage means configured to storeinstructions; and processing means coupled to the storage means, theprocessing means configured to execute the instructions stored in thestorage means to perform any of the methods disclosed herein.

The means for coding provides techniques for the output of priorpictures (e.g., previously-decoded pictures) in a decoded picture buffer(DPB) when a random access point picture (e.g., a clean random access(CRA) picture, a gradual random access (GRA) picture, or gradualdecoding refresh (GDR) picture, a CVSS picture, etc.) other than aninstantaneous decoder refresh (IDR) picture is encountered in decodingorder. Emptying the previously-decoded pictures from the DPB when therandom access point picture is reached prevents the DPB from overflowingand promotes a more continuous playback. Thus, the coder/decoder(a.k.a., “codec”) in video coding is improved relative to currentcodecs. As a practical matter, the improved video coding process offersthe user a better user experience when videos are sent, received, and/orviewed.

For the purpose of clarity, any one of the foregoing embodiments may becombined with any one or more of the other foregoing embodiments tocreate a new embodiment within the scope of the present disclosure.

These and other features will be more clearly understood from thefollowing detailed description taken in conjunction with theaccompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure, reference is nowmade to the following brief description, taken in connection with theaccompanying drawings and detailed description, wherein like referencenumerals represent like parts.

FIG. 1 is a block diagram illustrating an example coding system that mayutilize GDR techniques.

FIG. 2 is a block diagram illustrating an example video encoder that mayimplement GDR techniques.

FIG. 3 is a block diagram illustrating an example of a video decoderthat may implement GDR techniques.

FIG. 4 is a representation of a relationship between an IRAP picturerelative to leading pictures and trailing pictures in a decoding orderand a presentation order.

FIG. 5 illustrates a gradual decoding refresh technique.

FIG. 6 is a schematic diagram illustrating an undesirable motion search.

FIG. 7 illustrates a video bitstream configured to implement a cleanrandom access (CRA) technique.

FIG. 8 is an embodiment of a method of decoding a coded video bitstream.

FIG. 9 is an embodiment of a method of encoding a coded video bitstream.

FIG. 10 is a schematic diagram of a video coding device.

FIG. 11 is a schematic diagram of an embodiment of a means for coding.

DETAILED DESCRIPTION

It should be understood at the outset that although an illustrativeimplementation of one or more embodiments are provided below, thedisclosed systems and/or methods may be implemented using any number oftechniques, whether currently known or in existence. The disclosureshould in no way be limited to the illustrative implementations,drawings, and techniques illustrated below, including the exemplarydesigns and implementations illustrated and described herein, but may bemodified within the scope of the appended claims along with their fullscope of equivalents.

FIG. 1 is a block diagram illustrating an example coding system 10 thatmay utilize video coding techniques as described herein. As shown inFIG. 1, the coding system 10 includes a source device 12 that providesencoded video data to be decoded at a later time by a destination device14. In particular, the source device 12 may provide the video data todestination device 14 via a computer-readable medium 16. Source device12 and destination device 14 may comprise any of a wide range ofdevices, including desktop computers, notebook (e.g., laptop) computers,tablet computers, set-top boxes, telephone handsets such as so-called“smart” phones, so-called “smart” pads, televisions, cameras, displaydevices, digital media players, video gaming consoles, video streamingdevice, or the like. In some cases, source device 12 and destinationdevice 14 may be equipped for wireless communication.

Destination device 14 may receive the encoded video data to be decodedvia computer-readable medium 16. Computer-readable medium 16 maycomprise any type of medium or device capable of moving the encodedvideo data from source device 12 to destination device 14. In oneexample, computer-readable medium 16 may comprise a communication mediumto enable source device 12 to transmit encoded video data directly todestination device 14 in real-time. The encoded video data may bemodulated according to a communication standard, such as a wirelesscommunication protocol, and transmitted to destination device 14. Thecommunication medium may comprise any wireless or wired communicationmedium, such as a radio frequency (RF) spectrum or one or more physicaltransmission lines. The communication medium may form part of apacket-based network, such as a local area network, a wide-area network,or a global network such as the Internet. The communication medium mayinclude routers, switches, base stations, or any other equipment thatmay be useful to facilitate communication from source device 12 todestination device 14.

In some examples, encoded data may be output from output interface 22 toa storage device. Similarly, encoded data may be accessed from thestorage device by input interface. The storage device may include any ofa variety of distributed or locally accessed data storage media such asa hard drive, Blu-ray discs, digital video disks (DVD)s, Compact DiscRead-Only Memories (CD-ROMs), flash memory, volatile or non-volatilememory, or any other suitable digital storage media for storing encodedvideo data. In a further example, the storage device may correspond to afile server or another intermediate storage device that may store theencoded video generated by source device 12. Destination device 14 mayaccess stored video data from the storage device via streaming ordownload. The file server may be any type of server capable of storingencoded video data and transmitting that encoded video data to thedestination device 14. Example file servers include a web server (e.g.,for a website), a file transfer protocol (FTP) server, network attachedstorage (NAS) devices, or a local disk drive. Destination device 14 mayaccess the encoded video data through any standard data connection,including an Internet connection. This may include a wireless channel(e.g., a Wi-Fi connection), a wired connection (e.g., digital subscriberline (DSL), cable modem, etc.), or a combination of both that issuitable for accessing encoded video data stored on a file server. Thetransmission of encoded video data from the storage device may be astreaming transmission, a download transmission, or a combinationthereof.

The techniques of this disclosure are not necessarily limited towireless applications or settings. The techniques may be applied tovideo coding in support of any of a variety of multimedia applications,such as over-the-air television broadcasts, cable televisiontransmissions, satellite television transmissions, Internet streamingvideo transmissions, such as dynamic adaptive streaming over HTTP(DASH), digital video that is encoded onto a data storage medium,decoding of digital video stored on a data storage medium, or otherapplications. In some examples, coding system 10 may be configured tosupport one-way or two-way video transmission to support applicationssuch as video streaming, video playback, video broadcasting, and/orvideo telephony.

In the example of FIG. 1, source device 12 includes video source 18,video encoder 20, and output interface 22. Destination device 14includes input interface 28, video decoder 30, and display device 32. Inaccordance with this disclosure, video encoder 20 of the source device12 and/or the video decoder 30 of the destination device 14 may beconfigured to apply the techniques for video coding. In other examples,a source device and a destination device may include other components orarrangements. For example, source device 12 may receive video data froman external video source, such as an external camera. Likewise,destination device 14 may interface with an external display device,rather than including an integrated display device.

The illustrated coding system 10 of FIG. 1 is merely one example.Techniques for video coding may be performed by any digital videoencoding and/or decoding device. Although the techniques of thisdisclosure generally are performed by a video coding device, thetechniques may also be performed by a video encoder/decoder, typicallyreferred to as a “CODEC.” Moreover, the techniques of this disclosuremay also be performed by a video preprocessor. The video encoder and/orthe decoder may be a graphics processing unit (GPU) or a similar device.

Source device 12 and destination device 14 are merely examples of suchcoding devices in which source device 12 generates coded video data fortransmission to destination device 14. In some examples, source device12 and destination device 14 may operate in a substantially symmetricalmanner such that each of the source and destination devices 12, 14includes video encoding and decoding components. Hence, coding system 10may support one-way or two-way video transmission between video devices12, 14, e.g., for video streaming, video playback, video broadcasting,or video telephony.

Video source 18 of source device 12 may include a video capture device,such as a video camera, a video archive containing previously capturedvideo, and/or a video feed interface to receive video from a videocontent provider. As a further alternative, video source 18 may generatecomputer graphics-based data as the source video, or a combination oflive video, archived video, and computer-generated video.

In some cases, when video source 18 is a video camera, source device 12and destination device 14 may form so-called camera phones or videophones. As mentioned above, however, the techniques described in thisdisclosure may be applicable to video coding in general, and may beapplied to wireless and/or wired applications. In each case, thecaptured, pre-captured, or computer-generated video may be encoded byvideo encoder 20. The encoded video information may then be output byoutput interface 22 onto a computer-readable medium 16.

Computer-readable medium 16 may include transient media, such as awireless broadcast or wired network transmission, or storage media (thatis, non-transitory storage media), such as a hard disk, flash drive,compact disc, digital video disc, Blu-ray disc, or othercomputer-readable media. In some examples, a network server (not shown)may receive encoded video data from source device 12 and provide theencoded video data to destination device 14, e.g., via networktransmission. Similarly, a computing device of a medium productionfacility, such as a disc stamping facility, may receive encoded videodata from source device 12 and produce a disc containing the encodedvideo data. Therefore, computer-readable medium 16 may be understood toinclude one or more computer-readable media of various forms, in variousexamples.

Input interface 28 of destination device 14 receives information fromcomputer-readable medium 16. The information of computer-readable medium16 may include syntax information defined by video encoder 20, which isalso used by video decoder 30, that includes syntax elements thatdescribe characteristics and/or processing of blocks and other codedunits, e.g., group of pictures (GOPs). Display device 32 displays thedecoded video data to a user, and may comprise any of a variety ofdisplay devices such as a cathode ray tube (CRT), a liquid crystaldisplay (LCD), a plasma display, an organic light emitting diode (OLED)display, or another type of display device.

Video encoder 20 and video decoder 30 may operate according to a videocoding standard, such as the High Efficiency Video Coding (HEVC)standard presently under development, and may conform to the HEVC TestModel (HM). Alternatively, video encoder 20 and video decoder 30 mayoperate according to other proprietary or industry standards, such asthe International Telecommunications Union TelecommunicationStandardization Sector (ITU-T) H.264 standard, alternatively referred toas Moving Picture Expert Group (MPEG)-4, Part 10, Advanced Video Coding(AVC), H.265/HEVC, or extensions of such standards. The techniques ofthis disclosure, however, are not limited to any particular codingstandard. Other examples of video coding standards include MPEG-2 andITU-T H.263. Although not shown in FIG. 1, in some aspects, videoencoder 20 and video decoder 30 may each be integrated with an audioencoder and decoder, and may include appropriatemultiplexer-demultiplexer (MUX-DEMUX) units, or other hardware andsoftware, to handle encoding of both audio and video in a common datastream or separate data streams. If applicable, MUX-DEMUX units mayconform to the ITU H.223 multiplexer protocol, or other protocols suchas the user datagram protocol (UDP).

Video encoder 20 and video decoder 30 each may be implemented as any ofa variety of suitable encoder circuitry, such as one or moremicroprocessors, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs),discrete logic, software, hardware, firmware or any combinationsthereof. When the techniques are implemented partially in software, adevice may store instructions for the software in a suitable,non-transitory computer-readable medium and execute the instructions inhardware using one or more processors to perform the techniques of thisdisclosure. Each of video encoder 20 and video decoder 30 may beincluded in one or more encoders or decoders, either of which may beintegrated as part of a combined encoder/decoder (CODEC) in a respectivedevice. A device including video encoder 20 and/or video decoder 30 maycomprise an integrated circuit, a microprocessor, and/or a wirelesscommunication device, such as a cellular telephone.

FIG. 2 is a block diagram illustrating an example of video encoder 20that may implement video coding techniques. Video encoder 20 may performintra- and inter-coding of video blocks within video slices.Intra-coding relies on spatial prediction to reduce or remove spatialredundancy in video within a given video frame or picture. Inter-codingrelies on temporal prediction to reduce or remove temporal redundancy invideo within adjacent frames or pictures of a video sequence. Intra-mode(I mode) may refer to any of several spatial based coding modes.Inter-modes, such as uni-directional (a.k.a., uni prediction) prediction(P mode) or bi-prediction (a.k.a., bi prediction) (B mode), may refer toany of several temporal-based coding modes.

As shown in FIG. 2, video encoder 20 receives a current video blockwithin a video frame to be encoded. In the example of FIG. 2, videoencoder 20 includes mode select unit 40, reference frame memory 64,summer 50, transform processing unit 52, quantization unit 54, andentropy coding unit 56. Mode select unit 40, in turn, includes motioncompensation unit 44, motion estimation unit 42, intra-prediction(a.k.a., intra prediction) unit 46, and partition unit 48. For videoblock reconstruction, video encoder 20 also includes inversequantization unit 58, inverse transform unit 60, and summer 62. Adeblocking filter (not shown in FIG. 2) may also be included to filterblock boundaries to remove blockiness artifacts from reconstructedvideo. If desired, the deblocking filter would typically filter theoutput of summer 62. Additional filters (in loop or post loop) may alsobe used in addition to the deblocking filter. Such filters are not shownfor brevity, but if desired, may filter the output of summer 50 (as anin-loop filter).

During the encoding process, video encoder 20 receives a video frame orslice to be coded. The frame or slice may be divided into multiple videoblocks. Motion estimation unit 42 and motion compensation unit 44perform inter-predictive coding of the received video block relative toone or more blocks in one or more reference frames to provide temporalprediction. Intra-prediction unit 46 may alternatively performintra-predictive coding of the received video block relative to one ormore neighboring blocks in the same frame or slice as the block to becoded to provide spatial prediction. Video encoder 20 may performmultiple coding passes, e.g., to select an appropriate coding mode foreach block of video data.

Moreover, partition unit 48 may partition blocks of video data intosub-blocks, based on evaluation of previous partitioning schemes inprevious coding passes. For example, partition unit 48 may initiallypartition a frame or slice into largest coding units (LCUs), andpartition each of the LCUs into sub-coding units (sub-CUs) based onrate-distortion analysis (e.g., rate-distortion optimization). Modeselect unit 40 may further produce a quad-tree data structure indicativeof partitioning of a LCU into sub-CUs. Leaf-node CUs of the quad-treemay include one or more prediction units (PUs) and one or more transformunits (TUs).

The present disclosure uses the term “block” to refer to any of a CU,PU, or TU, in the context of HEVC, or similar data structures in thecontext of other standards (e.g., macroblocks and sub-blocks thereof inH.264/AVC). A CU includes a coding node, PUs, and TUs associated withthe coding node. A size of the CU corresponds to a size of the codingnode and is square in shape. The size of the CU may range from 8×8pixels up to the size of the treeblock with a maximum of 64×64 pixels orgreater. Each CU may contain one or more PUs and one or more TUs. Syntaxdata associated with a CU may describe, for example, partitioning of theCU into one or more PUs. Partitioning modes may differ between whetherthe CU is skip or direct mode encoded, intra-prediction mode encoded, orinter-prediction (a.k.a., inter prediction) mode encoded. PUs may bepartitioned to be non-square in shape. Syntax data associated with a CUmay also describe, for example, partitioning of the CU into one or moreTUs according to a quad-tree. A TU can be square or non-square (e.g.,rectangular) in shape.

Mode select unit 40 may select one of the coding modes, intra- orinter-, e.g., based on error results, and provides the resulting intra-or inter-coded block to summer 50 to generate residual block data and tosummer 62 to reconstruct the encoded block for use as a reference frame.Mode select unit 40 also provides syntax elements, such as motionvectors, intra-mode indicators, partition information, and other suchsyntax information, to entropy coding unit 56.

Motion estimation unit 42 and motion compensation unit 44 may be highlyintegrated, but are illustrated separately for conceptual purposes.Motion estimation, performed by motion estimation unit 42, is theprocess of generating motion vectors, which estimate motion for videoblocks. A motion vector, for example, may indicate the displacement of aPU of a video block within a current video frame or picture relative toa predictive block within a reference frame (or other coded unit)relative to the current block being coded within the current frame (orother coded unit). A predictive block is a block that is found toclosely match the block to be coded, in terms of pixel difference, whichmay be determined by sum of absolute difference (SAD), sum of squaredifference (SSD), or other difference metrics. In some examples, videoencoder 20 may calculate values for sub-integer pixel positions ofreference pictures stored in reference frame memory 64. For example,video encoder 20 may interpolate values of one-quarter pixel positions,one-eighth pixel positions, or other fractional pixel positions of thereference picture. Therefore, motion estimation unit 42 may perform amotion search relative to the full pixel positions and fractional pixelpositions and output a motion vector with fractional pixel precision.

Motion estimation unit 42 calculates a motion vector for a PU of a videoblock in an inter-coded slice by comparing the position of the PU to theposition of a predictive block of a reference picture. The referencepicture may be selected from a first reference picture list (List 0) ora second reference picture list (List 1), each of which identify one ormore reference pictures stored in reference frame memory 64. Motionestimation unit 42 sends the calculated motion vector to entropyencoding unit 56 and motion compensation unit 44.

Motion compensation, performed by motion compensation unit 44, mayinvolve fetching or generating the predictive block based on the motionvector determined by motion estimation unit 42. Again, motion estimationunit 42 and motion compensation unit 44 may be functionally integrated,in some examples. Upon receiving the motion vector for the PU of thecurrent video block, motion compensation unit 44 may locate thepredictive block to which the motion vector points in one of thereference picture lists. Summer 50 forms a residual video block bysubtracting pixel values of the predictive block from the pixel valuesof the current video block being coded, forming pixel difference values,as discussed below. In general, motion estimation unit 42 performsmotion estimation relative to luma components, and motion compensationunit 44 uses motion vectors calculated based on the luma components forboth chroma components and luma components. Mode select unit 40 may alsogenerate syntax elements associated with the video blocks and the videoslice for use by video decoder 30 in decoding the video blocks of thevideo slice.

Intra-prediction unit 46 may intra-predict a current block, as analternative to the inter-prediction performed by motion estimation unit42 and motion compensation unit 44, as described above. In particular,intra-prediction unit 46 may determine an intra-prediction mode to useto encode a current block. In some examples, intra-prediction unit 46may encode a current block using various intra-prediction modes, e.g.,during separate encoding passes, and intra-prediction unit 46 (or modeselect unit 40, in some examples) may select an appropriateintra-prediction mode to use from the tested modes.

For example, intra-prediction unit 46 may calculate rate-distortionvalues using a rate-distortion analysis for the various testedintra-prediction modes, and select the intra-prediction mode having thebest rate-distortion characteristics among the tested modes.Rate-distortion analysis generally determines an amount of distortion(or error) between an encoded block and an original, unencoded blockthat was encoded to produce the encoded block, as well as a bitrate(that is, a number of bits) used to produce the encoded block.Intra-prediction unit 46 may calculate ratios from the distortions andrates for the various encoded blocks to determine which intra-predictionmode exhibits the best rate-distortion value for the block.

In addition, intra-prediction unit 46 may be configured to code depthblocks of a depth map using a depth modeling mode (DMM). Mode selectunit 40 may determine whether an available DMM mode produces bettercoding results than an intra-prediction mode and the other DMM modes,e.g., using rate-distortion optimization (RDO). Data for a texture imagecorresponding to a depth map may be stored in reference frame memory 64.Motion estimation unit 42 and motion compensation unit 44 may also beconfigured to inter-predict depth blocks of a depth map.

After selecting an intra-prediction mode for a block (e.g., aconventional intra-prediction mode or one of the DMM modes),intra-prediction unit 46 may provide information indicative of theselected intra-prediction mode for the block to entropy coding unit 56.Entropy coding unit 56 may encode the information indicating theselected intra-prediction mode. Video encoder 20 may include in thetransmitted bitstream configuration data, which may include a pluralityof intra-prediction mode index tables and a plurality of modifiedintra-prediction mode index tables (also referred to as codeword mappingtables), definitions of encoding contexts for various blocks, andindications of a most probable intra-prediction mode, anintra-prediction mode index table, and a modified intra-prediction modeindex table to use for each of the contexts.

Video encoder 20 forms a residual video block by subtracting theprediction data from mode select unit 40 from the original video blockbeing coded. Summer 50 represents the component or components thatperform this subtraction operation.

Transform processing unit 52 applies a transform, such as a discretecosine transform (DCT) or a conceptually similar transform, to theresidual block, producing a video block comprising residual transformcoefficient values. Transform processing unit 52 may perform othertransforms which are conceptually similar to DCT. Wavelet transforms,integer transforms, sub-band transforms or other types of transformscould also be used.

Transform processing unit 52 applies the transform to the residualblock, producing a block of residual transform coefficients. Thetransform may convert the residual information from a pixel value domainto a transform domain, such as a frequency domain. Transform processingunit 52 may send the resulting transform coefficients to quantizationunit 54. Quantization unit 54 quantizes the transform coefficients tofurther reduce bit rate. The quantization process may reduce the bitdepth associated with some or all of the coefficients. The degree ofquantization may be modified by adjusting a quantization parameter. Insome examples, quantization unit 54 may then perform a scan of thematrix including the quantized transform coefficients. Alternatively,entropy encoding unit 56 may perform the scan.

Following quantization, entropy coding unit 56 entropy codes thequantized transform coefficients. For example, entropy coding unit 56may perform context adaptive variable length coding (CAVLC), contextadaptive binary arithmetic coding (CABAC), syntax-based context-adaptivebinary arithmetic coding (SBAC), probability interval partitioningentropy (PIPE) coding or another entropy coding technique. In the caseof context-based entropy coding, context may be based on neighboringblocks. Following the entropy coding by entropy coding unit 56, theencoded bitstream may be transmitted to another device (e.g., videodecoder 30) or archived for later transmission or retrieval.

Inverse quantization unit 58 and inverse transform unit 60 apply inversequantization and inverse transformation, respectively, to reconstructthe residual block in the pixel domain, e.g., for later use as areference block. Motion compensation unit 44 may calculate a referenceblock by adding the residual block to a predictive block of one of theframes of reference frame memory 64. Motion compensation unit 44 mayalso apply one or more interpolation filters to the reconstructedresidual block to calculate sub-integer pixel values for use in motionestimation. Summer 62 adds the reconstructed residual block to themotion compensated prediction block produced by motion compensation unit44 to produce a reconstructed video block for storage in reference framememory 64. The reconstructed video block may be used by motionestimation unit 42 and motion compensation unit 44 as a reference blockto inter-code a block in a subsequent video frame.

FIG. 3 is a block diagram illustrating an example of video decoder 30that may implement video coding techniques. In the example of FIG. 3,video decoder 30 includes an entropy decoding unit 70, motioncompensation unit 72, intra-prediction unit 74, inverse quantizationunit 76, inverse transformation unit 78, reference frame memory 82, andsummer 80. Video decoder 30 may, in some examples, perform a decodingpass generally reciprocal to the encoding pass described with respect tovideo encoder 20 (FIG. 2). Motion compensation unit 72 may generateprediction data based on motion vectors received from entropy decodingunit 70, while intra-prediction unit 74 may generate prediction databased on intra-prediction mode indicators received from entropy decodingunit 70.

During the decoding process, video decoder 30 receives an encoded videobitstream that represents video blocks of an encoded video slice andassociated syntax elements from video encoder 20. Entropy decoding unit70 of the video decoder 30 entropy decodes the bitstream to generatequantized coefficients, motion vectors or intra-prediction modeindicators, and other syntax elements. Entropy decoding unit 70 forwardsthe motion vectors and other syntax elements to motion compensation unit72. Video decoder 30 may receive the syntax elements at the video slicelevel and/or the video block level.

When the video slice is coded as an intra-coded (I) slice,intra-prediction unit 74 may generate prediction data for a video blockof the current video slice based on a signaled intra-prediction mode anddata from previously decoded blocks of the current frame or picture.When the video frame is coded as an inter-coded (e.g., B, P, or GPB)slice, motion compensation unit 72 produces predictive blocks for avideo block of the current video slice based on the motion vectors andother syntax elements received from entropy decoding unit 70. Thepredictive blocks may be produced from one of the reference pictureswithin one of the reference picture lists. Video decoder 30 mayconstruct the reference frame lists, List 0 and List 1, using defaultconstruction techniques based on reference pictures stored in referenceframe memory 82.

Motion compensation unit 72 determines prediction information for avideo block of the current video slice by parsing the motion vectors andother syntax elements, and uses the prediction information to producethe predictive blocks for the current video block being decoded. Forexample, motion compensation unit 72 uses some of the received syntaxelements to determine a prediction mode (e.g., intra- orinter-prediction) used to code the video blocks of the video slice, aninter-prediction slice type (e.g., B slice, P slice, or GPB slice),construction information for one or more of the reference picture listsfor the slice, motion vectors for each inter-encoded video block of theslice, inter-prediction status for each inter-coded video block of theslice, and other information to decode the video blocks in the currentvideo slice.

Motion compensation unit 72 may also perform interpolation based oninterpolation filters. Motion compensation unit 72 may use interpolationfilters as used by video encoder 20 during encoding of the video blocksto calculate interpolated values for sub-integer pixels of referenceblocks. In this case, motion compensation unit 72 may determine theinterpolation filters used by video encoder 20 from the received syntaxelements and use the interpolation filters to produce predictive blocks.

Data for a texture image corresponding to a depth map may be stored inreference frame memory 82. Motion compensation unit 72 may also beconfigured to inter-predict depth blocks of a depth map.

In an embodiment, the video decoder 30 includes a user interface (UI)84. The user interface 84 is configured to receive input from a user ofthe video decoder 30 (e.g., a network administrator). Through the userinterface 84, the user is able to manage or change settings on the videodecoder 30. For example, the user is able to input or otherwise providea value for a parameter (e.g., a flag) in order to control theconfiguration and/or operation of the video decoder 30 according theuser's preference. The user interface 84 may be, for example, agraphical user interface (GUI) that allows a user to interact with thevideo decoder 30 through graphical icons, drop-down menus, check boxes,and so on. In some cases, the user interface 84 may receive informationfrom the user via a keyboard, a mouse, or other peripheral device. In anembodiment, a user is able to access the user interface 84 via a smartphone, a tablet device, a personal computer located remotely from thevideo decoder 30, and so on. As used herein, the user interface 84 maybe referred to as an external input or an external means.

Keeping the above in mind, video compression techniques perform spatial(intra-picture) prediction and/or temporal (inter-picture) prediction toreduce or remove redundancy inherent in video sequences. For block-basedvideo coding, a video slice (i.e., a video picture or a portion of avideo picture) may be partitioned into video blocks, which may also bereferred to as treeblocks, coding tree blocks (CTBs), coding tree units(CTUs), coding units (CUs) and/or coding nodes. Video blocks in anintra-coded (I) slice of a picture are encoded using spatial predictionwith respect to reference samples in neighboring blocks in the samepicture. Video blocks in an inter-coded (P or B) slice of a picture mayuse spatial prediction with respect to reference samples in neighboringblocks in the same picture or temporal prediction with respect toreference samples in other reference pictures. Pictures may be referredto as frames, and reference pictures may be referred to as referenceframes.

Spatial or temporal prediction results in a predictive block for a blockto be coded. Residual data represents pixel differences between theoriginal block to be coded and the predictive block. An inter-codedblock is encoded according to a motion vector that points to a block ofreference samples forming the predictive block, and the residual dataindicating the difference between the coded block and the predictiveblock. An intra-coded block is encoded according to an intra-coding modeand the residual data. For further compression, the residual data may betransformed from the pixel domain to a transform domain, resulting inresidual transform coefficients, which then may be quantized. Thequantized transform coefficients, initially arranged in atwo-dimensional array, may be scanned in order to produce aone-dimensional vector of transform coefficients, and entropy coding maybe applied to achieve even more compression.

Image and video compression has experienced rapid growth, leading tovarious coding standards. Such video coding standards include ITU-TH.261, International Organization for Standardization/InternationalElectrotechnical Commission (ISO/IEC) MPEG-1 Part 2, ITU-T H.262 orISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, AdvancedVideo Coding (AVC), also known as ITU-T H.264 or ISO/IEC MPEG-4 Part 10,and High Efficiency Video Coding (HEVC), also known as ITU-T H.265 orMPEG-H Part 2. AVC includes extensions such as Scalable Video Coding(SVC), Multiview Video Coding (MVC) and Multiview Video Coding plusDepth (MVC+D), and 3D AVC (3D-AVC). HEVC includes extensions such asScalable HEVC (SHVC), Multiview HEVC (MV-HEVC), and 3D HEVC (3D-HEVC).

There is also a new video coding standard, named Versatile Video Coding(VVC), being developed by the joint video experts team (WET) of ITU-Tand ISO/IEC. While the VVC standard has several working drafts, oneWorking Draft (WD) of VVC in particular, namely B. Bross, J. Chen, andS. Liu, “Versatile Video Coding (Draft 5),” JVET-N1001-v3, 13th JVETMeeting, Mar. 27, 2019 (VVC Draft 5) is referenced herein.

The description of the techniques disclosed herein are based on theunder-development video coding standard Versatile Video Coding (VVC) bythe joint video experts team (JVET) of ITU-T and ISO/IEC. However, thetechniques also apply to other video codec specifications.

FIG. 4 is a representation 400 of a relationship between an intra randomaccess picture (IRAP) picture 402 relative to leading pictures 404 andtrailing pictures 406 in a decoding order 408 and a presentation order410. In an embodiment, the IRAP picture 402 is referred to as a cleanrandom access (CRA) picture or as an instantaneous decoder refresh (IDR)picture with random access decodable (RADL) picture. In HEVC, IDRpictures, CRA pictures, and Broken Link Access (BLA) pictures are allconsidered IRAP pictures 402. For VVC, during the 12th JVET meeting inOctober 2018, it was agreed to have both IDR and CRA pictures as IRAPpictures. In an embodiment, Broken Link Access (BLA) and Gradual DecoderRefresh (GDR) pictures may also be considered to be IRAP pictures. Thedecoding process for a coded video sequence always starts at an IRAP.

A CRA picture is an IRAP picture for which each video coding layer (VCL)network abstraction layer (NAL) unit has nal_unit_type equal to CRA_NUT.A CRA picture does not refer to any pictures other than itself for interprediction in its decoding process, and may be the first picture in thebitstream in decoding order, or may appear later in the bitstream. A CRApicture may have associated RADL or random access skipped leading (RASL)pictures. When a CRA picture has NoOutputBeforeRecoveryFlag equal to 1,the associated RASL pictures are not output by the decoder, because theymay not be decodable, as they may contain references to pictures thatare not present in the bitstream.

As shown in FIG. 4, the leading pictures 404 (e.g., pictures 2 and 3)follow the IRAP picture 402 in the decoding order 408, but precede theIRAP picture 402 in the presentation order 410. The trailing picture 406follows the IRAP picture 402 in both the decoding order 408 and in thepresentation order 410. While two leading pictures 404 and one trailingpicture 406 are depicted in FIG. 4, those skilled in the art willappreciate that more or fewer leading pictures 404 and/or trailingpictures 406 may be present in the decoding order 408 and thepresentation order 410 in practical applications.

The leading pictures 404 in FIG. 4 have been divided into two types,namely random access skipped leading (RASL) and RADL. When decodingstarts with the IRAP picture 402 (e.g., picture 1), the RADL picture(e.g., picture 3) can be properly decoded; however, the RASL picture(e.g., picture 2) cannot be properly decoded. Thus, the RASL picture isdiscarded. In light of the distinction between RADL and RASL pictures,the type of leading picture 404 associated with the IRAP picture 402should be identified as either RADL or RASL for efficient and propercoding. In HEVC, when RASL and RADL pictures are present, it isconstrained that for RASL and RADL pictures that are associated with thesame IRAP picture 402, the RASL pictures shall precede the RADL picturesin presentation order 410.

An IRAP picture 402 provides the following two importantfunctionalities/benefits. Firstly, the presence of an IRAP picture 402indicates that the decoding process can start from that picture. Thisfunctionality allows a random access feature in which the decodingprocess starts at that position in the bitstream, not necessarily thebeginning of the bitstream, as long as an IRAP picture 402 is present atthat position. Secondly, the presence of an IRAP picture 402 refreshesthe decoding process such that a coded picture starting at the IRAPpicture 402, excluding RASL pictures, are coded without any reference toprevious pictures. Having an IRAP picture 402 present in the bitstreamconsequently would stop any error that may happen during decoding ofcoded pictures prior to the IRAP picture 402 to propagate to the IRAPpicture 402 and those pictures that follow the IRAP picture 402 indecoding order 408.

While IRAP pictures 402 provide important functionalities, they comewith a penalty to the compression efficiency. The presence of an IRAPpicture 402 causes a surge in bitrate. This penalty to the compressionefficiency is due to two reasons. Firstly, as an IRAP picture 402 is anintra-predicted picture, the picture itself would require relativelymore bits to represent when compared to other pictures (e.g., leadingpictures 404, trailing pictures 406) that are inter-predicted pictures.Secondly, because the presence of an IRAP picture 402 breaks temporalprediction (this is because the decoder would refresh the decodingprocess, in which one of the actions of the decoding process for this isto remove previous reference pictures in the decoded picture buffer(DPB)), the TRAP picture 402 causes the coding of pictures that followthe TRAP picture 402 in decoding order 408 to be less efficient (i.e.,needs more bits to represent) because they have less reference picturesfor their inter-prediction coding.

Among the picture types that are considered TRAP pictures 402, the IDRpicture in HEVC has different signaling and derivation when compared toother picture types. Some of the differences are as follows.

For signaling and derivation of a picture order count (POC) value of anIDR picture, the most significant bit (MSB) part of the POC is notderived from the previous key picture but simply set to be equal to 0.

For signaling information needed for reference picture management, theslice header of an IDR picture does not contain information needed to besignaled to assist reference picture management. For other picture types(i.e., CRA, Trailing, temporal sub-layer access (TSA), etc.),information such as the reference picture set (RPS) described below orother forms of similar information (e.g., reference picture lists) areneeded for the reference pictures marking process (i.e., the process todetermine the status of reference pictures in the decoded picture buffer(DPB), either used for reference and unused for reference). However, forthe IDR picture, such information does not need to be signaled becausethe presence of IDR indicates that the decoding process shall simplymark all reference pictures in the DPB as unused for reference.

In HEVC and VVC, TRAP pictures 402 and leading pictures 404 may each becontained within a single network abstraction layer (NAL) unit. A set ofthe NAL units may be referred to as an access unit. IRAP pictures 402and leading pictures 404 are given different NAL unit types so that theycan be easily identified by system level applications. For example, avideo splicer needs to understand coded picture types without having tounderstand too much detail of the syntax element in the coded bitstream,particularly to identify TRAP pictures 402 from non-IRAP pictures and toidentify leading pictures 404, including determining RASL and RADLpictures, from trailing pictures 406. Trailing pictures 406 are thosepictures that are associated with an TRAP picture 402 and follow theTRAP picture 402 in presentation order 410. A picture may follow theparticular IRAP picture 402 in decoding order 408 and precede any otherIRAP picture 402 in decoding order 408. For this, giving TRAP pictures402 and leading pictures 404 their own NAL unit type helps suchapplications.

For HEVC, NAL unit types for TRAP pictures include the following:

-   -   BLA with leading picture (BLA_W_LP): NAL unit of a Broken Link        Access (BLA) picture that may be followed by one or more leading        pictures in decoding order.    -   BLA with RADL (BLA_W_RADL): NAL unit of a BLA picture that may        be followed by one or more RADL pictures but no RASL picture in        decoding order.    -   BLA with no leading picture (BLA_N_LP): NAL unit of a BLA        picture that is not followed by leading picture in decoding        order.    -   IDR with RADL (IDR_W_RADL): NAL unit of an IDR picture that may        be followed by one or more RADL pictures but no RASL picture in        decoding order.    -   IDR with no leading picture (IDR_N_LP): NAL unit of an IDR        picture that is not followed by leading picture in decoding        order.    -   CRA: NAL unit of a Clean Random Access (CRA) picture that may be        followed by leading pictures (i.e., either RASL pictures or RADL        pictures or both).    -   RADL: NAL unit of a RADL picture.    -   RASL: NAL unit of a RASL picture.

For VVC, the NAL unit type for TRAP pictures 402 and leading pictures404 are as follows:

-   -   IDR with RADL (IDR_W_RADL): NAL unit of an IDR picture that may        be followed by one or more RADL pictures but no RASL picture in        decoding order.    -   IDR with no leading picture (IDR_N_LP): NAL unit of an IDR        picture that is not followed by leading picture in decoding        order.    -   CRA: NAL unit of a Clean Random Access (CRA) picture that may be        followed by leading pictures (i.e., either RASL pictures or RADL        pictures or both).    -   RADL: NAL unit of a RADL picture.    -   RASL: NAL unit of a RASL picture.

FIG. 5 illustrates a video bitstream 550 configured to implement agradual decoding refresh (GDR) technique 500. As used herein the videobitstream 550 may also be referred to as a coded video bitstream, abitstream, or variations thereof. As shown in FIG. 5, the bitstream 550comprises a sequence parameter set (SPS) 552, a picture parameter set(PPS) 554, a slice header 556, and image data 558.

The SPS 552 contains data that is common to all the pictures in asequence of pictures (SOP). In contrast, the PPS 554 contains data thatis common to the entire picture. The slice header 556 containsinformation about the current slice such as, for example, the slicetype, which of the reference pictures will be used, and so on. The SPS552 and the PPS 554 may be generically referred to as a parameter set.The SPS 552, the PPS 554, and the slice header 556 are types of NetworkAbstraction Layer (NAL) units. A NAL unit is a syntax structurecontaining an indication of the type of data to follow (e.g., codedvideo data). NAL units are classified into video coding layer (VCL) andnon-VCL NAL units. The VCL NAL units contain the data that representsthe values of the samples in the video pictures, and the non-VCL NALunits contain any associated additional information such as parametersets (important header data that can apply to a large number of VCL NALunits) and supplemental enhancement information (timing information andother supplemental data that may enhance usability of the decoded videosignal but are not necessary for decoding the values of the samples inthe video pictures). Those skilled in the art will appreciate that thebitstream 550 may contain other parameters and information in practicalapplications.

The image data 558 of FIG. 5 comprises data associated with the imagesor video being encoded or decoded. The image data 558 may be simplyreferred to as the payload or data being carried in the bitstream 550.In an embodiment, the image data 558 comprises the CVS 508 (or CLVS)containing a GDR picture 502, one or more trailing pictures 504, and arecovery point picture 506. In an embodiment, the GDR picture 502 isreferred to as a CVS starting (CVSS) picture. The CVS 508 is a codedvideo sequence for every coded layer video sequence (CLVS) in the videobitstream 550. Notably, the CVS and the CLVS are the same when the videobitstream 550 includes a single layer. The CVS and the CLVS are onlydifferent when the video bitstream 550 includes multiple layers. In anembodiment, the trailing pictures 504 may be considered a form of GDRpicture since they precede the recovery point picture 506 in the GDRperiod.

In an embodiment, the GDR picture 502, the trailing pictures 504, andthe recovery point picture 506 may define a GDR period in the CVS 508.In an embodiment, a decoding order begins with the GDR picture 502,continues with the trailing pictures 504, and then proceeds to therecovery picture 506.

The CVS 508 is a series of pictures (or portions thereof) starting withthe GDR picture 502 and includes all pictures (or portions thereof) upto, but not including, the next GDR picture or until the end of thebitstream. The GDR period is a series of pictures starting with the GDRpicture 502 and includes all pictures up to and including the recoverypoint picture 506. The decoding process for the CVS 508 always starts atthe GDR picture 502.

As shown in FIG. 5, the GDR technique 500 or principle works over aseries of pictures starting with the GDR picture 502 and ending with therecovery point picture 506. The GDR picture 502 contains arefreshed/clean region 510 containing blocks that have all be codedusing intra prediction (i.e., intra-predicted blocks) and anun-refreshed/dirty region 512 containing blocks that have all be codedusing inter prediction (i.e., inter-predicted blocks).

The trailing picture 504 immediately adjacent to the GDR picture 502contains a refreshed/clean region 510 having a first portion 510A codedusing intra prediction and a second portion 510B coded using interprediction. The second portion 510B is coded by referencing therefreshed/clean region 510 of, for example, a preceeding picture withinthe GDR period of the CVS 508. As shown, the refreshed/clean region 510of the trailing pictures 504 expands as the coding process moves orprogresses in a consistent direction (e.g., from left to right), whichcorrespondingly shrinks the un-refreshed/dirty region 512. Eventually,the recovery point picture 506, which contains only the refreshed/cleanregion 510, is obtained from the coding process. Notably, and as will befurther discussed below, the second portion 510B of the refreshed/cleanregion 510, which is coded as inter-predicted blocks, may only refer tothe refreshed/clean region 510 in the reference picture.

As shown in FIG. 5, the GDR picture 502, the trailing pictures 504, andthe recovery point picture 506 in the CVS 508 are each contained withintheir own VCL NAL unit 530. The set of VCL NAL units 530 in the CVS 508may be referred to as an access unit.

In an embodiment, the VCL NAL unit 530 containing the GDR picture 502 inthe CVS 508 has a GDR NAL unit type (GDR_NUT). That is, in an embodimentthe VCL NAL unit 530 containing the GDR picture 502 in the CVS 508 hasits own unique NAL unit type relative to the trailing pictures 504 andthe recovery point picture 506. In an embodiment, the GDR_NUT permitsthe bitstream 550 to begin with the GDR picture 502 instead of thebitstream 550 having to begin with an IRAP picture. Designating the VCLNAL unit 530 of the GDR picture 502 as a GDR_NUT may indicate to, forexample, a decoder that the initial VCL NAL unit 530 in the CVS 508contains the GDR picture 502. In an embodiment, the GDR picture 502 isthe initial picture in the CVS 508. In an embodiment, the GDR picture502 is the initial picture in the GDR period.

FIG. 6 is a schematic diagram illustrating an undesirable motion search600 when using the encoder restriction to support GDR. As shown, themotion search 600 depicts a current picture 602 and a reference picture604. The current picture 602 and the reference picture 604 each includea refreshed region 606 coded with intra prediction, a refreshed region608 coded with inter prediction, and an unrefreshed region 608. Therefreshed region 604, the refreshed region 606, and the unrefreshedregion 608 are similar to the the first portion 510A of therefreshed/clean region 510, the second portion 510B of therefreshed/clean region 510, and the un-refreshed/dirty region 512 inFIG. 5.

During motion search process, the encoder is constrained or preventedfrom selecting any motion vector 610 that results in some of the samplesof the reference block 612 being located outside the refreshed region606. This occurs even when the reference block 612 provides the bestrate-distortion cost criteria when predicting the current block 614 inthe current picture 602. Thus, FIG. 6 illustrates the reason fornon-optimality in the motion search 600 when using the encoderrestriction for supporting GDR.

FIG. 7 illustrates a video bitstream 750 configured to implement agradual decoding refresh (GDR) technique 700. As used herein the videobitstream 750 may also be referred to as a coded video bitstream, abitstream, or variations thereof. As shown in FIG. 7, the bitstream 750comprises a sequence parameter set (SPS) 752, a picture parameter set(PPS) 754, a slice header 756, and image data 758. The bitstream 750,the SPS 752, the PPS 754, and the slice header 756 in FIG. 7 are similarto the bitstream 550, the SPS 552, the PPS 554, and the slice header 556of FIG. 5. Therefore, for the sake of brevity, a description of theseelements will not be repeated.

The image data 758 of FIG. 7 comprises data associated with the imagesor video being encoded or decoded. The image data 758 may be simplyreferred to as the payload or data being carried in the bitstream 750.In an embodiment, the image data 758 comprises the CVS 708 (or CLVS)containing a GDR picture 702, one or more trailing pictures 704, and anend of sequence picture picture 706. In an embodiment, the GDR picture702 is referred to as a CVSS picture. The decoding process for the CVS708 always starts at the GDR picture 702.

As shown in FIG. 7, the GDR picture 702, the trailing pictures 704, andthe end of sequence picture 706 in the CVS 708 are each contained withintheir own VCL NAL unit 730. The set of VCL NAL units 730 in the CVS 708may be referred to as an access unit.

In the latest draft specification of VVC, output of prior pictures forTRAP pictures is specified as follows. The prior pictures (e.g.,previously-decoded pictures) for an TRAP picture refer to those picturesthat 1) are decoded earlier than the TRAP picture, 2) are indicated foroutput, 3) are present in the decoded picture buffer (DPB) at thebeginning of decoding the TRAP picture, and 4) have not been output atthe beginning of decoding the TRAP picture. As used herein, the priorpictures may be referred to as previously-decoded pictures.

The slice header syntax includes the syntax elementno_output_of_prior_pics_flag for IDR and CRA pictures. The semantics areas follows:

no_output_of_prior_pics_flag affects the output of previously-decodedpictures in the decoded picture buffer after the decoding of an IDRpicture that is not the first picture in the bitstream as specified inAnnex C of VVC Draft 5.

Clause C.3.2 (Removal of pictures from the DPB before decoding of thecurrent picture) in the VVC Draft 5 includes the following text:

-   -   When the current picture is an TRAP picture with        NoIncorrectPicOutputFlag equal to 1 that is not picture 0, the        following ordered steps are applied:

1. The variable NoOutputOfPriorPicsFlag is derived for the decoder undertest as follows:

-   -   If the current picture is a CRA picture, NoOutputOfPriorPicsFlag        is set equal to 1 (regardless of the value of        no_output_of_prior_pics_flag).    -   Otherwise, if the value of pic_width_in_luma_samples,        pic_height_in_luma_samples, chroma_format_idc,        separate_colour_plane_flag, bit_depth_luma_minus8,        bit_depth_chroma_minus8 or        sps_max_dec_pic_buffering_minus1[HighestTid] derived from the        active SPS is different from the value of        pic_width_in_luma_samples, pic_height_in_luma_samples,        chroma_format_idc, separate_colour_plane_flag,        bit_depth_luma_minus8, bit_depth_chroma_minus8 or        sps_max_dec_pic_buffering_minus1[HighestTid], respectively,        derived from the SPS active for the preceding picture,        NoOutputOfPriorPicsFlag may (but should not) be set to 1 by the        decoder under test, regardless of the value of        no_output_of_prior_pics_flag.

NOTE—Although setting NoOutputOfPriorPicsFlag equal tono_output_of_prior_pics_flag is preferred under these conditions, thedecoder under test is allowed to set NoOutputOfPriorPicsFlag to 1 inthis case.

-   -   Otherwise, NoOutputOfPriorPicsFlag is set equal to        no_output_of_prior_pics_flag.

2. The value of NoOutputOfPriorPicsFlag derived for the decoder undertest is applied for the hypothetical reference decoder (HRD), such thatwhen the value of NoOutputOfPriorPicsFlag is equal to 1, all picturestorage buffers in the DPB are emptied without output of the picturesthey contain, and the DPB fullness is set equal to 0.

Clause C.5.2.2 (Output and removal of pictures from the DPB) of the VVCDraft 5 includes the following text:

-   -   If the current picture is an TRAP picture with        NoIncorrectPicOutputFlag equal to 1 that is not picture 0, the        following ordered steps are applied:

1. The variable NoOutputOfPriorPicsFlag is derived for the decoder undertest as follows:

-   -   If the current picture is a CRA picture, NoOutputOfPriorPicsFlag        is set equal to 1 (regardless of the value of        no_output_of_prior_pics_flag).    -   Otherwise, if the value of pic_width_in_luma_samples,        pic_height_in_luma_samples, chroma_format_idc,        separate_colour_plane_flag, bit_depth_luma_minus8,        bit_depth_chroma_minus8 or        sps_max_dec_pic_buffering_minus1[HighestTid] derived from the        active SPS is different from the value of        pic_width_in_luma_samples, pic_height_in_luma_samples,        chroma_format_idc, separate_colour_plane_flag,        bit_depth_luma_minus8, bit_depth_chroma_minus8 or        sps_max_dec_pic_buffering_minus1[HighestTid], respectively,        derived from the SPS active for the preceding picture,        NoOutputOfPriorPicsFlag may (but should not) be set to 1 by the        decoder under test, regardless of the value of        no_output_of_prior_pics_flag.

NOTE—Although setting NoOutputOfPriorPicsFlag equal tono_output_of_prior_pics_flag is preferred under these conditions, thedecoder under test is allowed to set NoOutputOfPriorPicsFlag to 1 inthis case.

-   -   Otherwise, NoOutputOfPriorPicsFlag is set equal to        no_output_of_prior_pics_flag.

2. The value of NoOutputOfPriorPicsFlag derived for the decoder undertest is applied for the HRD as follows:

-   -   If NoOutputOfPriorPicsFlag is equal to 1, all picture storage        buffers in the DPB are emptied without output of the pictures        they contain and the DPB fullness is set equal to 0.    -   Otherwise (NoOutputOfPriorPicsFlag is equal to 0), all picture        storage buffers containing a picture that is marked as “not        needed for output” and “unused for reference” are emptied        (without output) and all non-empty picture storage buffers in        the DPB are emptied by repeatedly invoking the “bumping” process        specified in clause C.5.2.4 and the DPB fullness is set equal to        0.

The problems of the existing designs are discussed.

In the latest draft specification of VVC, for a CRA picture withNoIncorrectPicOutputFlag equal to 1 (i.e., a CRA picture that starts anew CVS), the value of no_output_ofprior_pics_flag is not used, as thevalue of NoOutputOfPriorPicsFlag is set equal to 1 regardless of thevalue of no_output_of_prior_pics_flag. That means, the prior pictures ofeach CRA picture starting a CVS are not output. However, similarly asfor an IDR picture, output/display of prior pictures can provide a morecontinuous playback and hence a better user experience as long as theDPB does not get overflowed when decoding the picture starting a new CVSand the subsequent pictures in decoding order.

In order to solve the problems discussed above, this disclosure providesthe following inventive aspect. The value ofno_output_of_prior_pics_flag is used in the specification of the outputof prior pictures for each CRA picture that starts a new CVS and that isnot the first picture in the bitstream. This enables a more continuousplayback and hence a better user experience.

This disclosure also applies to other types of pictures that start a newCVS, e.g., a gradal random access (GRA) picture as currently specifiedin the latest VVC draft specification. In an embodiment, the GRA picturemay be referred to or is synonymous with a GDR picture.

By way of example, when decoding a video bitstream, a flag correspondingto a clean random access (CRA) picture is signaled in the bitstream. Theflag specifies whether decoded pictures in the decoded picture bufferthat are decoded earlier than the CRA picture are output when the CRApicture starts a new coded video sequence. That is, when the value ofthe flag indicates that the prior pictures are output (e.g., when thevalue is equal to 0), outputting the prior pictures. In an embodiment,the flag is designated as no_output_of_prior_pics_flag.

As another example, when decoding a video bitstream, a flagcorresponding to a gradual random access (GRA) picture is signaled inthe bitstream. The flag specifies whether decoded pictures in thedecoded picture buffer that are decoded earlier than the GRA picture areoutput when the GRA picture starts a new coded video sequence. That is,when the value of the flag indicates that the prior pictures are output(e.g., when the value is equal to 0), outputting the prior pictures. Inan embodiment, the flag is designated as no_output_of_prior_pics_flag.

Disclosed herein are techniques for the output of prior pictures (e.g.,previously-decoded pictures) in a decoded picture buffer (DPB) when arandom access point picture (e.g., a clean random access (CRA) picture,a gradual random access (GRA) picture, or gradual decoding refresh (GDR)picture, a CVSS picture, etc.) other than an instantaneous decoderrefresh (IDR) picture is encountered in decoding order. Emptying thepreviously-decoded pictures from the DPB when the random access pointpicture is reached prevents the DPB from overflowing and promotes a morecontinuous playback. Thus, the coder/decoder (a.k.a., “codec”) in videocoding is improved relative to current codecs. As a practical matter,the improved video coding process offers the user a better userexperience when videos are sent, received, and/or viewed.

FIG. 8 is an embodiment of a method 800 of decoding a coded videobitstream implemented by a video decoder (e.g., video decoder 30). Themethod 800 may be performed after the decoded bitstream has beendirectly or indirectly received from a video encoder (e.g., videoencoder 20). The method 800 improves the decoding process by emptyingthe DPB before a current picture is decoded when a random access pointpicture is encountered. The method 800 prevents the DPB from overflowingand promotes a more continuous playback. Therefore, as a practicalmatter, the performance of a codec is improved, which leads to a betteruser experience.

In block 802, the video decoder receives the coded video bitstream(e.g., the bitstream 750). The coded video bitstream contains a gradualdecoding refresh (GDR) picture and a first flag having a first value. Inan embodiment, the GDR picture is not a first picture of the coded videobitstream. In an embodiment, the first flag is designated asno_output_of_prior_pics_flag. In an embodiment, the GDR picture isdisposed in a video coding layer (VCL) network abstraction layer (NAL)unit having a gradual decoding refresh (GDR) network abstraction layer(NAL) unit type (GDR_NUT).

In block 804, the video decoder sets a second value of a second flagequal to the first value of the first flag. In an embodiment, the secondflag is designated as NoOutputOfPriorPicsFlag. In an embodiment, thesecond flag is internal to the decoder.

In block 806, the video decoder empties any previously-decoded picturescorresponding to the GDR picture from the DPB based on the second flaghaving the second value. In an embodiment, the previously-decodedpictures are emptied from the DPB after the GDR picture has beendecoded. That is, the video decoder removes the previously-decodedpictures from the picture storage buffers in the DPB. In an embodiment,the previously-decoded pictures are not output or displayed when thepreviously-decoded pictures are removed from the DPB. In an embodiment,a DPB fullness parameter is set to zero when the first flag is set tothe first value. The DPB fullness parameter indicates how many picturesare held in the DPB. Setting the DPB fullness parameter to zerosignifies that the DPB is empty.

In block 808, the video decoder decodes a current picture after the DPBhas been emptied. In an embodiment, the current picture is from the sameCVS as the CRA picture and is obtained or encountered after the CRA indecoding order. In an embodiment, an image generated based on thecurrent picture is displayed for a user of an electronic device (e.g., asmart phone, tablet, laptop, personal computer, etc.).

FIG. 9 is an embodiment of a method 900 of encoding a video bitstreamimplemented by a video encoder (e.g., video encoder 20). The method 900may be performed when a picture (e.g., from a video) is to be encodedinto a video bitstream and then transmitted toward a video decoder(e.g., video decoder 30). The method 900 improves the encoding processby instructing the video decoder to empty the DPB before a currentpicture is decoded when a random access point picture is encountered.The method 900 prevents the DPB from overflowing and promotes a morecontinuous playback. Therefore, as a practical matter, the performanceof a codec is improved, which leads to a better user experience.

In block 902, the video encoder determines a random access point for avideo sequence. In block 904, the video encoder encodes a gradualdecoding refresh (GDR) picture into the video sequence at the randomaccess point. In an embodiment, the GDR picture is not a first pictureof the video bitstream. In an embodiment, the GDR picture is disposed ina video coding layer (VCL) network abstraction layer (NAL) unit having agradual decoding refresh (GDR) network abstraction layer (NAL) unit type(GDR_NUT).

In block 906, the video encoder sets a flag to a first value to instructa video decoder to empty any previously-decoded pictures from a decodedpicture buffer (DPB). In an embodiment, the video decoder is instructedto empty any previously-decoded pictures from the DPB after the GDRpicture has been decoded. In an embodiment, the flag is designated asno_output_of_prior_pics_flag. In an embodiment, the video encoderinstructs the video decoder to set a DPB fullness parameter to zero whenthe flag is set to the first value. In an embodiment, the first value ofthe flag is one.

In block 908, the video encoder generates the video bitstream containingthe video sequence having the GDR picture at the random access point andthe flag. In block 910, the video encoder stores the video bitstream fortransmission toward the video decoder.

The following syntax and semantics may be employed to implement theembodiments disclosed herein. The following description is relative tothe basis text, which is the latest VVC draft specification. In otherwords, only the delta is described, while the text in the basis textthat are not mentioned below apply as they are. Added text relative tothe basis text is shown in bold, and removed text is shown in italics.

General slice header syntax (7.3.5.1 in VVC).

Descriptor slice_header( ) { ... if( NalUnitType = = IDR_W_RADL | |NalUnitType = = IDR_N_LP | | NalUnitType = = CRA_NUT | | NalUnitType = =GRA _(—) NUT ) no_output_of_prior_pics_flag u(1) ...

General slice header semantics (7.4.6.1 in VVC).

When present, the value of each of the slice header syntax elementsslice_pic_parameter_set_id, slice_pic_order_cnt_lsb,no_output_of_prior_pics_flag, and slice_temporal_mvp_enabled_flag shallbe the same in all slice headers of a coded picture.

. . .

no_output_of_prior_pics_flag affects the output of previously-decodedpictures in the decoded picture buffer after the decoding of an IDRpicture a CVSS picture that is not the first picture in the bitstream asspecified in Annex C.

. . .

Removal of pictures from the DPB before decoding of the current picture(C.3.2 in VVC).

. . .

-   -   When the current picture is an IRAP picture with        NoIncorrectPicOutputFlag equal to 1 a CVSS picture that is not        picture 0, the following ordered steps are applied:

1. The variable NoOutputOfPriorPicsFlag is derived for the decoder undertest as follows:

-   -   If the current picture is a CRA picture, NoOutputOfPriorPicsFlag        is set equal to 1 (regardless of the value of        no_output_of_prior_pics_flag).    -   Otherwise, if If the value of pic_width_in_luma_samples,        pic_height_in_luma_samples, chroma_format_idc,        separate_colour_plane_flag, bit_depth_luma_minus8,        bit_depth_chroma_minus8 or        sps_max_dec_pic_buffering_minus1[HighestTid] derived from the        active SPS is different from the value of        pic_width_in_luma_samples, pic_height_in_luma_samples,        chroma_format_idc, separate_colour_plane_flag,        bit_depth_luma_minus8, bit_depth_chroma_minus8 or        sps_max_dec_pic_buffering_minus1[HighestTid], respectively,        derived from the SPS active for the preceding picture,        NoOutputOfPriorPicsFlag may (but should not) be set to 1 by the        decoder under test, regardless of the value of        no_output_of_prior_pics_flag.

NOTE—Although setting NoOutputOfPriorPicsFlag equal tono_output_of_prior_pics_flag is preferred under these conditions, thedecoder under test is allowed to set NoOutputOfPriorPicsFlag to 1 inthis case.

-   -   Otherwise, NoOutputOfPriorPicsFlag is set equal to        no_output_of_prior_pics_flag.

2. The value of NoOutputOfPriorPicsFlag derived for the decoder undertest is applied for the HRD, such that when the value ofNoOutputOfPriorPicsFlag is equal to 1, all picture storage buffers inthe DPB are emptied without output of the pictures they contain, and theDPB fullness is set equal to 0.

FIG. 10 is a schematic diagram of a video coding device 1000 (e.g., avideo encoder 20 or a video decoder 30) according to an embodiment ofthe disclosure. The video coding device 1000 is suitable forimplementing the disclosed embodiments as described herein. The videocoding device 1000 comprises ingress ports 1010 and receiver units (Rx)1020 for receiving data; a processor, logic unit, or central processingunit (CPU) 1030 to process the data; transmitter units (Tx) 1040 andegress ports 1050 for transmitting the data; and a memory 1060 forstoring the data. The video coding device 1000 may also compriseoptical-to-electrical (OE) components and electrical-to-optical (EO)components coupled to the ingress ports 1010, the receiver units 1020,the transmitter units 1040, and the egress ports 1050 for egress oringress of optical or electrical signals.

The processor 1030 is implemented by hardware and software. Theprocessor 1030 may be implemented as one or more CPU chips, cores (e.g.,as a multi-core processor), field-programmable gate arrays (FPGAs),application specific integrated circuits (ASICs), and digital signalprocessors (DSPs). The processor 1030 is in communication with theingress ports 1010, receiver units 1020, transmitter units 1040, egressports 1050, and memory 1060. The processor 1030 comprises a codingmodule 1070. The coding module 1070 implements the disclosed embodimentsdescribed above. For instance, the coding module 1070 implements,processes, prepares, or provides the various codec functions. Theinclusion of the coding module 1070 therefore provides a substantialimprovement to the functionality of the video coding device 1000 andeffects a transformation of the video coding device 1000 to a differentstate. Alternatively, the coding module 1070 is implemented asinstructions stored in the memory 1060 and executed by the processor1030.

The video coding device 1000 may also include input and/or output (I/O)devices 1080 for communicating data to and from a user. The I/O devices1080 may include output devices such as a display for displaying videodata, speakers for outputting audio data, etc. The I/O devices 1080 mayalso include input devices, such as a keyboard, mouse, trackball, etc.,and/or corresponding interfaces for interacting with such outputdevices.

The memory 1060 comprises one or more disks, tape drives, andsolid-state drives and may be used as an over-flow data storage device,to store programs when such programs are selected for execution, and tostore instructions and data that are read during program execution. Thememory 1060 may be volatile and/or non-volatile and may be read-onlymemory (ROM), random access memory (RAM), ternary content-addressablememory (TCAM), and/or static random-access memory (SRAM).

FIG. 11 is a schematic diagram of an embodiment of a means for coding1100. In an embodiment, the means for coding 1100 is implemented in avideo coding device 1102 (e.g., a video encoder 20 or a video decoder30). The video coding device 1102 includes receiving means 1101. Thereceiving means 1101 is configured to receive a picture to encode or toreceive a bitstream to decode. The video coding device 1102 includestransmission means 1107 coupled to the receiving means 1101. Thetransmission means 1107 is configured to transmit the bitstream to adecoder or to transmit a decoded image to a display means (e.g., one ofthe I/O devices 1080).

The video coding device 1102 includes a storage means 1103. The storagemeans 1103 is coupled to at least one of the receiving means 1101 or thetransmission means 1107. The storage means 1103 is configured to storeinstructions. The video coding device 1102 also includes processingmeans 1105. The processing means 1105 is coupled to the storage means1103. The processing means 1105 is configured to execute theinstructions stored in the storage means 1103 to perform the methodsdisclosed herein.

It should also be understood that the steps of the exemplary methods setforth herein are not necessarily required to be performed in the orderdescribed, and the order of the steps of such methods should beunderstood to be merely exemplary. Likewise, additional steps may beincluded in such methods, and certain steps may be omitted or combined,in methods consistent with various embodiments of the presentdisclosure.

While several embodiments have been provided in the present disclosure,it should be understood that the disclosed systems and methods might beembodied in many other specific forms without departing from the spiritor scope of the present disclosure. The present examples are to beconsidered as illustrative and not restrictive, and the intention is notto be limited to the details given herein. For example, the variouselements or components may be combined or integrated in another systemor certain features may be omitted, or not implemented.

In addition, techniques, systems, subsystems, and methods described andillustrated in the various embodiments as discrete or separate may becombined or integrated with other systems, modules, techniques, ormethods without departing from the scope of the present disclosure.Other items shown or discussed as coupled or directly coupled orcommunicating with each other may be indirectly coupled or communicatingthrough some interface, device, or intermediate component whetherelectrically, mechanically, or otherwise. Other examples of changes,substitutions, and alterations are ascertainable by one skilled in theart and could be made without departing from the spirit and scopedisclosed herein.

What is claimed is:
 1. A method of decoding implemented by a videodecoder, comprising: receiving, by the video decoder, a coded videobitstream, wherein the coded video bitstream contains a gradual decodingrefresh (GDR) picture and a first flag having a first value; setting, bythe video decoder, a second value of a second flag equal to the firstvalue of the first flag; emptying, by the video decoder, anypreviously-decoded pictures from a decoded picture buffer (DPB) based onthe second flag having the second value after the GDR picture has beendecoded; and decoding, by the video decoder, a current picture after theDPB has been emptied.
 2. The method of claim 1, wherein the GDR pictureis not a first picture of the coded video bitstream, and wherein thefirst value of the flag is one.
 3. The method of claim 1, wherein theGDR picture is disposed in a video coding layer (VCL) networkabstraction layer (NAL) unit having a gradual decoding refresh (GDR)network abstraction layer (NAL) unit type (GDR_NUT).
 4. The method ofclaim 1, further comprising setting a DPB fullness parameter to zerowhen the first flag is set to the first value.
 5. The method of claim 1,wherein the first flag is designated as no_output_of_prior_pics_flag andthe second flag is designated as NoOutputOfPriorPicsFlag.
 6. The methodof claim 1, wherein the DPB is emptied after the GDR picture has beendecoded.
 7. The method of claim 1, further comprising displaying animage generated based on the current picture.
 8. A method of encodingimplemented by a video encoder, the method comprising: determining, bythe video encoder, a random access point for a video sequence; encoding,by the video encoder, a gradual decoding refresh (GDR) picture into thevideo sequence at the random access point; setting, by the videoencoder, a flag to a first value to instruct a video decoder to emptyany previously-decoded pictures from a decoded picture buffer (DPB);generating, by the video encoder, a video bitstream containing the videosequence having the GDR picture at the random access point and the flag;and storing, by the video encoder, the video bitstream for transmissiontoward the video decoder.
 9. The method of claim 8, wherein the GDRpicture is not a first picture of the video bitstream, and wherein thevideo decoder is instructed to empty the DPB after the GDR picture hasbeen decoded.
 10. The method of claim 8, wherein the GDR picture isdisposed in a video coding layer (VCL) network abstraction layer (NAL)unit having a gradual decoding refresh (GDR) network abstraction layer(NAL) unit type (GDR_NUT).
 11. The method of claim 8, further comprisinginstructing the video decoder to set a DPB fullness parameter to zerowhen the flag is set to the first value.
 12. The method of claim 8,wherein the flag is designated as no_output_of_prior_pics_flag.
 13. Themethod of claim 8, wherein the first value of the flag is one.
 14. Adecoding device, comprising: a receiver configured to receive a codedvideo bitstream; a memory coupled to the receiver, the memory storinginstructions; and a processor coupled to the memory, the processorconfigured to execute the instructions to cause the decoding device to:receive the coded video bitstream, wherein the coded video bitstreamcontains a gradual decoding refresh (GDR) picture and a first flaghaving a first value; set a second value of a second flag equal to thefirst value of the first flag; empty any previously-decoded picturesfrom a decoded picture buffer (DPB) based on the second flag having thesecond value; and decode a current picture after the DPB has beenemptied.
 15. The decoding device of claim 14, wherein the GDR picture isnot a first picture of the coded video bitstream.
 16. The decodingdevice of claim 14, wherein the first flag is designated asno_output_of_prior_pics_flag, and wherein the second flag is designatedas NoOutputOfPriorPicsFlag.
 17. The decoding device of claim 14, furthercomprising a display configured to display an image as generated basedon the current picture.
 18. An encoding device, comprising: a memorycontaining instructions; a processor coupled to the memory, theprocessor configured to implement the instructions to cause the encodingdevice to: determine a random access point for a video sequence; encodea gradual decoding refresh (GDR) picture into the video sequence at therandom access point; set a flag to a first value to instruct a videodecoder to empty any previously-decoded pictures from a decoded picturebuffer (DPB); and generate a video bitstream containing the videosequence having the GDR picture at the random access point and the flag;and a transmitter coupled to the processor, the transmitter configuredto transmit the video bitstream toward the video decoder.
 19. Theencoding device of claim 18, wherein the GDR picture is not a firstpicture of the video bitstream.
 20. The encoding device of claim 18,wherein the flag is designated as no_output_of_prior_pics_flag.
 21. Theencoding device of claim 18, wherein the memory stores the videobitstream prior to the transmitter transmitting the video bitstreamtoward the video decoder.